import {getNewsList,getNewsCat} from  '../../api/news'
Page({

  /**
   * 页面的初始数据
   */
  data: {
      cat_list:[
        
      ],
      TabCur : '',
      newsList:[
        
      ],
      pageNo : 1,
      pageSize : 10,
      loading: false,
		  noMoreData: false,
  },

    // 点击切换 tab
    tabSelect(e) {
      this.setData({
        TabCur: e.currentTarget.dataset.id // 更新当前选中的 tab
      });
     this.init_data()
    },

    init_data(){
      this.setData({
        pageNo : 1,
        pageSize : 10,
        loading : false,
        noMoreData : false
      })
      this.loadMoreData(true)
    },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.get_news_cat();
    this.loadMoreData()
  },
  // 异步加载数据
  async loadMoreData(reload = false) {
    // 防止重复加载和无更多数据时继续加载
    if (this.data.loading || this.data.noMoreData) return;

    // 设置加载状态
    this.setData({ loading: true });

    try {
      // 获取新数据
      const newItems = await this.getListData();

      // 处理无数据或有数据的情况
      this.setData({
        newsList: reload ? newItems : [...this.data.newsList, ...newItems],
        noMoreData: newItems.length === 0,
        pageNo: reload ? 1 : this.data.pageNo + (newItems.length ? 1 : 0), // 页码更新
      });
    } catch (error) {
      console.error('加载更多数据失败:', error);
    } finally {
      // 关闭加载状态
      this.setData({ loading: false });
    }
  },

  //获取数据
  async getListData() {
    try {
      // 调用接口获取数据
      const response = await getNewsList({
        pageSize: this.data.pageSize,   
        pageNo: this.data.pageNo, 
        type : this.data.TabCur
      });
     
      if (response && response.data && response.data.list) {
        return response.data.list; // 返回数据列表
      } else {
        throw new Error('数据格式错误');
      }
    } catch (error) {
      return []; // 返回空数组，避免后续逻辑错误
    }
  },
  //获取新闻分类
  get_news_cat(){
    getNewsCat('lg_new_type').then(res=>{
        this.setData({
          cat_list : res.data
        })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.loadMoreData()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})